//引用express框架
const express = require('express');
//引用route路由
const myPushTask = express.Router();
//引用数据库操作逻辑
var Task = require('../model/task')
var TaskPush = require('../model/taskPush')
// 返回前端信息

myPushTask.get('/', (req, res) => {
    let data = {
        status: 200,
        tips: 'success',
        task: ''
    }
    let respon = res
    // 获取当前用户ID
    let id = req.query.token
    // 获取当前请求页
    let nowPage = req.query.nowPage
    // 获取要请求的数据量
    let nextNum = req.query.nextNum
    TaskPush.find({
        'openId': id,
    }, function (err, doc) {
        // 获取数据库记录长度
        let totalPage = doc.length
        // 函数会回传大于等于所给数字的最小整数(判断数据总共可以分为多少页)
        totalPage = Math.ceil(totalPage / nextNum)
        // 若请求页数已经大于分页数
        if (nowPage > totalPage) {
            data.tips = '数据已加载完'
            respon.status(200).json(data)
            return
        }
        // 管道查询
        TaskPush.aggregate([
            {
                // 条件查询
                $match: {
                    openId: {
                        $lte: id
                    },
                },
            },
            {
                // 级联查询
                $lookup: {
                    // 查询“任务”表
                    from: "Task",
                    localField: 'taskId',
                    foreignField: '_id',
                    // 作为字段Pushtask
                    as: 'TaskPush'
                },
            }
        ]).sort({ 'pushTime': -1 }).skip((nowPage - 1) * parseInt(nextNum)).limit(parseInt(nextNum)).exec(function (err, doc) {
            if (err) {
                // 错误提示
                data.status = '600'
                respon.status(200).json(data)
                return
            }
            // 返回查询结果
            data.task = doc
            respon.status(200).json(data)
        })
    })
})

//将路由对象做为模块成员进行导出
module.exports = myPushTask;